home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 2
/
Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso
/
Aminet
/
dev
/
e
/
amigae21b.lha
/
Amiga_E_v2.1b
/
Sources
/
Utilities
/
QuickLaunch.e
< prev
next >
Wrap
Text File
|
1992-09-02
|
2KB
|
71 lines
/* QuickLaunch */
MODULE 'intuition/intuition'
CONST MAXLAUNCH=12
CONST MAXGADGETS=MAXLAUNCH*GADGETSIZE
CONST IDCMPF=IDCMP_CLOSEWINDOW+IDCMP_GADGETUP
DEF window,nrgad=0,next,gl[MAXGADGETS]:ARRAY,outf=TRUE,class
PROC main()
next:=Gadget(gl,NIL,1,3,10,14,100,'Output')
next:=Gadget(next,gl,2,0,120,14,100,'About')
IF readfile()=FALSE
WriteF('Could not read config file correctly!\n')
ELSE
window:=OpenW(205,16,230,nrgad*14+48,IDCMPF,$100E,'QuickLaunch',0,1,gl)
IF window=NIL
WriteF('Could not open window!\n')
ELSE
Colour(2,0)
TextF(10,37,'Ready for takeoff ... ')
REPEAT
class:=WaitIMessage(window)
IF class=IDCMP_GADGETUP THEN dogadgets()
UNTIL class=IDCMP_CLOSEWINDOW
CloseW(window)
ENDIF
ENDIF
ENDPROC
PROC readfile()
DEF len,a,adr,buf,handle,name,flen=TRUE
name:='S:QuickLaunch.Config'
IF (flen:=FileLength(name))=-1 THEN RETURN
IF (buf:=New(flen+1))=NIL THEN RETURN
IF (handle:=Open(name,1005))=NIL THEN RETURN
len:=Read(handle,buf,flen)
Close(handle)
IF len<1 THEN RETURN
adr:=buf
FOR a:=0 TO len-1
IF buf[a]=10
buf[a]:=0
IF adr=0
adr:=buf+a+1
ELSE /* id=pathadr */
IF nrgad++=MAXLAUNCH THEN RETURN
next:=Gadget(next,gl,buf+a+1,0,10,nrgad*14+30,210,adr)
adr:=0
ENDIF
ENDIF
ENDFOR
ENDPROC TRUE
PROC dogadgets()
DEF gadget,object:PTR TO gadget
object:=MsgIaddr()
gadget:=object.userdata
IF gadget=1
outf:=Not(outf)
ELSEIF gadget=2
TextF(10,37,'Written in Amiga E by $#%!')
ELSE
IF outf THEN WriteF('') /* force window if stdout=0 */
TextF(10,37,'Launching ... \l\s[12]',gadget)
Execute(gadget,0,stdout)
TextF(10,37,'Done. ')
ENDIF
ENDPROC